import axios from 'axios'
import { Message } from 'element-ui'
import store from '@/store'

const request = axios.create({
  // 使用环境变量，当做基地址
  baseURL: process.env.VUE_APP_BASE_URL,
  timeout: 20000 // request timeout
})

// 请求拦截器
request.interceptors.request.use(
  config => {
    if (!config.headers.Authorization && store.state.user.token) {
      config.headers.Authorization = `Bearer ${store.state.user.token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
request.interceptors.response.use(
  // 统一处理，解构数据
  // 统一处理错误
  response => {
    const { message, success } = response.data
    // 为什么success能判断，为什么判断success，因为如果登录失败或者成功，后端会返回你一个true或者false，根据这个判断
    if (success) {
      return response.data
    } else {
      Message.error({
        message: message + '123'
      })
      // 如果登录失败，将错误事件触发
      return Promise.reject(message)
    }
  },
  error => {
    console.log('我错了')
    return Promise.reject(error)
  }
)

export default request
